using System.Collections.Generic;
using UnityEngine;

namespace ai_library
{
	public interface IEntity
	{
		int ID
		{
			get;
		}

		SteeringBehavior Steering
		{
			get;
		}

		Transform Transformation
		{
			get;
		}

		Vector2 Position
		{
			get;
		}
		
		Vector2 Forward
		{
			get;
		}

		Vector2 Left
		{
			get;
		}

		Vector2 Right
		{
			get;
		}
		
		float Mass
		{
			get;
		}
		
		float MaxSpeed
		{
			get;
		}
		
		float MaxForce
		{
			get;
		}
		
		float MaxTurnRate
		{
			get;
		}

		Vector2 Velocity
		{
			get;
			set;
		}

		float TimeElapsed
		{
			get;
		}

		float BRadius
		{
			get;
		}

		bool EnableDebugSteeringHelpers
		{
			get;
			set;
		}

		bool EnableDebugFeelerHelpers
		{
			get;
			set;
		}

		List<Vector2> Feelers
		{
			get;
		}

		void Update(float dt);

		bool ProcessMessage(Message m);
	}
}
